<!DOCTYPE html>
<html lang="zh-CN">





<head>
  <meta charset="UTF-8">
  <link rel="apple-touch-icon" sizes="76x76" href="/img/apple-touch-icon.png">
  <link rel="icon" type="image/png" href="/img/favicon.png">
  <meta name="viewport"
        content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  <meta name="description" content="">
  <meta name="author" content="yhs0092">
  <meta name="keywords" content="docker">
  <title>Dockerfile 中的 ENTRYPOINT 和 CMD ~ 遥·海·时 的博客</title>

  <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/5.10.2/css/all.min.css"  >
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/css/bootstrap.min.css"  >
<link rel="stylesheet" href="https://cdn.staticfile.org/mdbootstrap/4.8.9/css/mdb.min.css"  >
<link rel="stylesheet" href="https://cdn.staticfile.org/github-markdown-css/3.0.1/github-markdown.min.css"  >

<link rel="stylesheet" href="//at.alicdn.com/t/font_1067060_qzomjdt8bmp.css">



  <link rel="stylesheet" href="/lib/prettify/github-v2.min.css"  >

<link rel="stylesheet" href="/css/main.css"  >


  <link rel="stylesheet" href="https://cdn.staticfile.org/fancybox/3.5.7/jquery.fancybox.min.css"  >


<meta name="generator" content="Hexo 4.2.0"></head>


<body>
  <header style="height: 70vh;">
    <nav id="navbar" class="navbar fixed-top  navbar-expand-lg navbar-dark scrolling-navbar">
  <div class="container">
    <a class="navbar-brand"
       href="/">&nbsp;<strong>遥·海·时 的博客</strong>&nbsp;</a>

    <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
            data-target="#navbarSupportedContent"
            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <div class="animated-icon"><span></span><span></span><span></span></div>
    </button>

    <!-- Collapsible content -->
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav ml-auto text-center">
        
          
          
          <li class="nav-item">
            <a class="nav-link" href="/">Home</a>
          </li>
        
          
          
          <li class="nav-item">
            <a class="nav-link" href="/archives/">Archives</a>
          </li>
        
          
          
          <li class="nav-item">
            <a class="nav-link" href="/categories/">Categories</a>
          </li>
        
          
          
          <li class="nav-item">
            <a class="nav-link" href="/tags/">Tags</a>
          </li>
        
          
          
          <li class="nav-item">
            <a class="nav-link" href="/about/">About</a>
          </li>
        
        
          <li class="nav-item" id="search-btn">
            <a class="nav-link" data-toggle="modal" data-target="#modalSearch">&nbsp;&nbsp;<i
                class="iconfont icon-search"></i>&nbsp;&nbsp;</a>
          </li>
        
      </ul>
    </div>
  </div>


</nav>

    <div class="view intro-2" id="background"
         style="background: url('/img/blog/docker-entrypoint-and-cmd/banner.jpg')no-repeat center center;
           background-size: cover;
           background-attachment: fixed;">
      <div class="full-bg-img">
        <div class="mask rgba-black-light flex-center">
          <div class="container text-center white-text fadeInUp">
            <span class="h2" id="subtitle">
              
            </span>

            
              <br>
              
                <p class="mt-3">
                  <i class="fas fa-calendar-alt" aria-hidden="true"></i>&nbsp;
                  星期四, 八月 20日 2020, 8:53 晚上
                </p>
              

              <p>
                
                  
                  &nbsp;<i class="far fa-chart-bar"></i>
                  <span class="post-count">
                    1.9k 字
                  </span>&nbsp;
                

                
                  
                  &nbsp;<i class="far fa-clock"></i>
                  <span class="post-count">
                      8 分钟
                  </span>&nbsp;
                

                
                  <!-- 不蒜子统计文章PV -->
                  
                  &nbsp;<i class="far fa-eye" aria-hidden="true"></i>&nbsp;
                  <span id="busuanzi_container_page_pv">
                    <span id="busuanzi_value_page_pv"></span> 次
                  </span>&nbsp;
                
              </p>
            
          </div>

          
        </div>
      </div>
    </div>
  </header>

  <main>
    
      

<div class="container-fluid">
  <div class="row">
    <div class="d-none d-lg-block col-lg-2"></div>
    <div class="col-lg-8 nopadding-md">
      <div class="py-5 z-depth-3" id="board">
        <div class="post-content mx-auto" id="post">
          <div class="markdown-body">
            <p>关于 Dockerfile 中 ENTRYPOINT 和 CMD 的简要对比及使用说明</p>
<a id="more"></a>

<blockquote>
<p>在 Dockerfile 中， <code>ENTRYPOINT</code> 命令和 <code>CMD</code> 命令都可以指定 docker 容器启动时运行的命令，它们之间有什么异同，使用上又有什么需要注意的呢？</p>
</blockquote>
<h2 id="简要对比"><a href="#简要对比" class="headerlink" title="简要对比"></a>简要对比</h2><h3 id="ENTRYPOINT-命令和-CMD-命令都可用于指定-docker-容器启动时默认运行的命令，并且它们都是可以覆盖的"><a href="#ENTRYPOINT-命令和-CMD-命令都可用于指定-docker-容器启动时默认运行的命令，并且它们都是可以覆盖的" class="headerlink" title="ENTRYPOINT 命令和 CMD 命令都可用于指定 docker 容器启动时默认运行的命令，并且它们都是可以覆盖的"></a><code>ENTRYPOINT</code> 命令和 <code>CMD</code> 命令都可用于指定 docker 容器启动时默认运行的命令，并且它们都是可以覆盖的</h3><p><code>ENTRYPOINT</code> 命令可以使用 <code>--entrypoint</code> 参数覆盖。<br>如果可执行命令还需要加上参数，记得参数是加在末尾的。<br>例如，执行 <code>docker run --entrypoint sleep test 3600</code> 命令，表示启动一个 <code>test:latest</code> 镜像的容器，执行的命令效果是 <code>sleep 3600</code>（注意这里作为命令的 <code>sleep</code> 和作为参数的 <code>3600</code> 的位置不是连在一起的！）。</p>
<p><code>CMD</code> 命令不需要使用特别的参数覆盖，直接在 <code>docker run</code> 命令的末尾添加参数即可。<br>例如，执行 <code>docker run test sleep 3600</code> 命令，也表示启动一个 <code>test:latest</code> 镜像的容器，执行的命令是 <code>sleep 3600</code>。<br>（前提条件是镜像没有指定<code>ENTRYPOINT</code>，后文会展示 <code>ENTRYPOINT</code> 和 <code>CMD</code> 是可以共同生效的）</p>
<h3 id="如果你希望打出的镜像只执行某个具体的程序，那么-ENTRYPOINT-更适合用于指定启动命令"><a href="#如果你希望打出的镜像只执行某个具体的程序，那么-ENTRYPOINT-更适合用于指定启动命令" class="headerlink" title="如果你希望打出的镜像只执行某个具体的程序，那么 ENTRYPOINT 更适合用于指定启动命令"></a>如果你希望打出的镜像只执行某个具体的程序，那么 <code>ENTRYPOINT</code> 更适合用于指定启动命令</h3><p>如前文所述， <code>ENTRYPOINT</code> 指定的启动命令覆盖起来更麻烦一些。<br>该命令通常都是用于指定一个预设的启动命令的，用户一般不会修改此启动命令，但他们可能增加一些参数。<br>例如使用如下的 Dockerfile 打一个镜像：</p>
<pre><code class="Dockerfile">FROM alpine

ENTRYPOINT [&quot;ping&quot;]</code></pre>
<p>执行打包<code>docker build -t test -f Dockerfile .</code>。<br>则在运行 <code>test</code> 镜像时可以通过在 <code>docker run</code> 命令末尾追加参数来调整运行的<code>ping</code>命令。<br>例如可以执行 <code>docker run test localhost</code> 来运行 <code>ping localhost</code>，也可以执行 <code>docker run test www.baidu.com</code> 来运行 <code>ping www.baidu.com</code>。</p>
<h3 id="如果你希望打出的镜像更灵活，那么使用-CMD-更合适"><a href="#如果你希望打出的镜像更灵活，那么使用-CMD-更合适" class="headerlink" title="如果你希望打出的镜像更灵活，那么使用 CMD 更合适"></a>如果你希望打出的镜像更灵活，那么使用 <code>CMD</code> 更合适</h3><p>如前文所述，仅仅是在 <code>docker run</code> 命令的末尾添加参数即可覆盖 <code>CMD</code> 命令。<br>因此用户可以更加方便灵活地指定其他启动命令来运行镜像。</p>
<h2 id="命令书写风格：-shell-和-exec"><a href="#命令书写风格：-shell-和-exec" class="headerlink" title="命令书写风格： shell 和 exec"></a>命令书写风格： shell 和 exec</h2><p>在 Dockerfile 中，把启动命令写成 <code>ENTRYPOINT ifconfig</code> 和 <code>ENTRYPOINT [&quot;ifconfig&quot;]</code> 都是可以的，前者称为 shell 风格，后者称为 exec 风格，而且在运行 docker 镜像时看上去效果也一样。<br>但这两种写法打出的镜像中实际运行的启动命令并不相同。</p>
<p>使用 shell 风格的启动命令打出的镜像，会将 <code>ENTRYPOINT</code> 后面接的命令整体以 <code>/bin/sh -c</code> 的形式执行。<br>例如 Dockerfile 中写的是 <code>ENTRYPOINT ifconfig eth0</code> ，则打出的镜像中启动命令为 <code>/bin/sh -c &#39;ifconfig eth0&#39;</code>。</p>
<p>使用 exec 风格的启动命令打出的镜像，会将其中的命令分段拼接起来执行。<br>例如 Dockerfile 中写的是 <code>ENTRYPOINT [&quot;ifconfig&quot;, &quot;eth0&quot;]</code> ，则打出的镜像中启动命令为 <code>ifconfig eth0</code>。</p>
<p>直接执行这两种风格的 Dockerfile 打出的镜像，从效果上看似乎没有差别。<br>但是 shell 风格的写法会让 <code>docker run</code> 镜像时不好添加参数，而 exec 风格的写法则没有此问题。<br>因此，一般更推荐使用 exec 风格的写法书写 Dockerfile。</p>
<p>作为示例，我们分别以两种风格各书写一份 Dockerfile，内容如下：</p>
<ul>
<li><p>DockerfileShell:</p>
<pre><code class="Dockerfile">FROM alpine

ENTRYPOINT ifconfig</code></pre>
</li>
<li><p>DockerfileExec:</p>
<pre><code class="Dockerfile">FROM alpine

ENTRYPOINT [&quot;ifconfig&quot;]</code></pre>
</li>
</ul>
<p>分别执行 <code>docker build -t test-shell -f DockerfileShell .</code> 和 <code>docker build -t test-exec -f DockerfileExec .</code> 打出镜像。<br>可以先使用 <code>docker history</code> 观察镜像的差别：</p>
<pre><code class="shell"># docker history --no-trunc test-shell
IMAGE                                                                     CREATED              CREATED BY                                                                                          SIZE                COMMENT
sha256:3ff667ccad9ec9e5cdd1450bcfe9cd5463fc91c2ddd7f71221b6e65d20aa1eea   About a minute ago   /bin/sh -c #(nop)  ENTRYPOINT [&quot;/bin/sh&quot; &quot;-c&quot; &quot;ifconfig&quot;]                                           0B
sha256:a24bb4013296f61e89ba57005a7b3e52274d8edd3ae2077d04395f806b63d83e   2 months ago         /bin/sh -c #(nop)  CMD [&quot;/bin/sh&quot;]                                                                  0B
&lt;missing&gt;                                                                 2 months ago         /bin/sh -c #(nop) ADD file:c92c248239f8c7b9b3c067650954815f391b7bcb09023f984972c082ace2a8d0 in /    5.57MB

# docker history --no-trunc test-exec
IMAGE                                                                     CREATED              CREATED BY                                                                                          SIZE                COMMENT
sha256:e885515099ca3fa7cd55a40597f960f0660ea040dfe304888e12fedd3bec8748   About a minute ago   /bin/sh -c #(nop)  ENTRYPOINT [&quot;ifconfig&quot;]                                                          0B
sha256:a24bb4013296f61e89ba57005a7b3e52274d8edd3ae2077d04395f806b63d83e   2 months ago         /bin/sh -c #(nop)  CMD [&quot;/bin/sh&quot;]                                                                  0B
&lt;missing&gt;                                                                 2 months ago         /bin/sh -c #(nop) ADD file:c92c248239f8c7b9b3c067650954815f391b7bcb09023f984972c082ace2a8d0 in /    5.57MB</code></pre>
<p>无论是执行 <code>docker run --rm test-shell</code> 还是 <code>docker run --rm test-exec</code> 都会将容器中全部的网卡打印出来。<br>但如果我们指定打印 <code>eth0</code> 网卡的信息，两个容器的差异就会显现出来了：</p>
<ul>
<li><p>shell 风格：</p>
<pre><code class="shell"># docker run --rm test-shell eth0
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:03
          inet addr:172.17.0.3  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:90 (90.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)</code></pre>
</li>
<li><p>exec 风格：</p>
<pre><code class="shell"># docker run --rm test-exec eth0
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:03
          inet addr:172.17.0.3  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:90 (90.0 B)  TX bytes:0 (0.0 B)</code></pre>
</li>
</ul>
<p>也就是说， shell 风格打出的镜像执行的命令类似于 <code>bash -c &#39;ifconfig&#39; eth0</code> ，结尾的 <code>eth0</code> 根本没有作为参数追加到 <code>ifconfig</code> 后面。<br>而 exec 风格打出的镜像，参数才能正确地追加到启动命令的后面，达到 <code>ifconfig eth0</code> 的效果。</p>
<h2 id="ENTRYPOING-和-CMD-联用"><a href="#ENTRYPOING-和-CMD-联用" class="headerlink" title="ENTRYPOING 和 CMD 联用"></a>ENTRYPOING 和 CMD 联用</h2><p><code>ENTRYPOINT</code> 和 <code>CMD</code> 命令联用，可以实现由 <code>ENTRYPOINT</code> 命令指定预设的应用程序启动命令，由 <code>CMD</code> 声明默认启动参数的效果。<br>我们用这样一份 Dockerfile 打出名为 <code>test</code> 的镜像：</p>
<pre><code class="Dockerfile">FROM alpine

ENTRYPOINT [&quot;ifconfig&quot;]
CMD [&quot;lo&quot;]</code></pre>
<p>这样此镜像的启动程序就是 <code>ifconfig</code> 命令，默认的参数是用来显示本地回环地址的。而我们也可以通过在 <code>docker run</code> 命令后追加参数来打印其他网卡：<br>默认参数效果：</p>
<pre><code class="shell"># docker run --rm test
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)</code></pre>
<p>手动指定其他参数：</p>
<pre><code class="shell"># docker run --rm test eth0
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:03
          inet addr:172.17.0.3  Bcast:172.17.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:90 (90.0 B)  TX bytes:0 (0.0 B)</code></pre>
<p>可以看到追加到命令末尾的 <code>eth0</code> 参数覆盖了 <code>CMD</code> 指定的默认参数 <code>lo</code> ，但是 <code>ENTRYPOINT</code> 指定的启动命令 <code>ifconfig</code> 是不变的。</p>
<p><strong>注意</strong>：要达到这种效果，<strong>必须以 exec 形式书写 <code>CMD</code> 和 <code>ENTRYPOINT</code> 命令</strong>，使用 shell 形式书写达不到效果的。</p>
<h2 id="本文验证环境："><a href="#本文验证环境：" class="headerlink" title="本文验证环境："></a>本文验证环境：</h2><ul>
<li><p>宿主机：Ubuntu 18.04</p>
</li>
<li><p>docker：</p>
<pre><code class="shell"># docker version
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.4
 Git commit:        e68fc7a
 Built:             Fri Oct 19 19:43:14 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.4
  Git commit:       e68fc7a
  Built:            Thu Sep 27 02:39:50 2018
  OS/Arch:          linux/amd64
  Experimental:     false</code></pre>
</li>
</ul>
<h2 id="参考文档"><a href="#参考文档" class="headerlink" title="参考文档"></a>参考文档</h2><ul>
<li><a href="https://zhuanlan.zhihu.com/p/30555962" target="_blank" rel="noopener">Dockerfile: ENTRYPOINT和CMD的区别</a></li>
</ul>

            <hr>
          </div>
          <br>
          <div>
            <p>
            
              <span>
                <i class="iconfont icon-inbox"></i>
                
                  <a class="hover-with-bg" href="/categories/%E8%BD%AF%E4%BB%B6%E6%8A%80%E6%9C%AF">软件技术</a>
                  &nbsp;
                
              </span>&nbsp;&nbsp;
            
            
              <span>
                <i class="iconfont icon-tag"></i>
                
                  <a class="hover-with-bg" href="/tags/docker">docker</a>
                
              </span>
            
            </p>
            
              <p class="note note-warning">本博客所有文章除特别声明外，均采用 <a href="https://zh.wikipedia.org/wiki/Wikipedia:CC_BY-SA_3.0%E5%8D%8F%E8%AE%AE%E6%96%87%E6%9C%AC" target="_blank" rel="nofollow noopener noopener">CC BY-SA 3.0协议</a> 。转载请注明出处！</p>
            
          </div>
        </div>
      </div>
    </div>
    <div class="d-none d-lg-block col-lg-2 toc-container">
      
  <div id="toc">
    <p class="h4"><i class="far fa-list-alt"></i>&nbsp;目录</p>
    <div id="tocbot"></div>
  </div>

    </div>
  </div>
</div>

<!-- custom -->


<!-- Comments -->
<div class="col-lg-7 mx-auto nopadding-md">
  <div class="container comments mx-auto" id="comments">
    
  </div>
</div>

    
  </main>

  
    <a class="z-depth-1" id="scroll-top-button" href="#" role="button">
      <i class="fa fa-chevron-up scroll-top-arrow" aria-hidden="true"></i>
    </a>
  

  
    <div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
     aria-hidden="true">
  <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header text-center">
        <h4 class="modal-title w-100 font-weight-bold">搜索</h4>
        <button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body mx-3">
        <div class="md-form mb-5">
          <input type="text" id="local-search-input" class="form-control validate">
          <label data-error="x" data-success="v"
                 for="local-search-input">关键词</label>
        </div>
        <div class="list-group" id="local-search-result"></div>
      </div>
    </div>
  </div>
</div>
  

  <footer class="mt-5">
  <div class="text-center py-3">
    <a href="https://hexo.io" target="_blank" rel="nofollow noopener"><b>Hexo</b></a>
    <i class="iconfont icon-love"></i>
    <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"> <b>Fluid</b></a>
    <br>

    
  
    <!-- 不蒜子统计PV -->
    
    &nbsp;<span id="busuanzi_container_site_pv">总访问量 
          <span id="busuanzi_value_site_pv"></span> 次</span>&nbsp;
  
  
    <!-- 不蒜子统计UV -->
    
    &nbsp;<span id="busuanzi_container_site_uv">总访客数 
            <span id="busuanzi_value_site_uv"></span> 人</span>&nbsp;
  
  <br>



    

  </div>
</footer>

<!-- SCRIPTS -->
<script src="https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js" ></script>
<script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js" ></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js" ></script>
<script src="https://cdn.staticfile.org/mdbootstrap/4.8.9/js/mdb.min.js" ></script>
<script src="/js/main.js" ></script>


  <script src="/js/lazyload.js" ></script>



  
    <script src="https://cdn.staticfile.org/tocbot/4.8.0/tocbot.min.js" ></script>
  
  <script src="/js/post.js" ></script>



  <script src="https://cdn.staticfile.org/smooth-scroll/16.1.0/smooth-scroll.min.js" ></script>



  <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" ></script>


<!-- Plugins -->


  

  

  

  

  




  <script src="https://cdn.staticfile.org/prettify/r298/prettify.min.js" ></script>
  <script>
    $(document).ready(function () {
      $('pre').addClass('prettyprint  linenums');
      prettyPrint();
    })
  </script>



  <script src="https://cdn.staticfile.org/typed.js/2.0.10/typed.min.js" ></script>
  <script>
    var typed = new Typed('#subtitle', {
      strings: [
        '  ',
        "Dockerfile 中的 ENTRYPOINT 和 CMD&nbsp;",
      ],
      cursorChar: "_",
      typeSpeed: 70,
      loop: false,
    });
    typed.stop();
    $(document).ready(function () {
      $(".typed-cursor").addClass("h2");
      typed.start();
    });
  </script>



  <script src="https://cdn.staticfile.org/anchor-js/4.2.0/anchor.min.js" ></script>
  <script>
    anchors.options = {
      placement: "left",
      visible: "false",
      
    };
    var el = "h1,h2,h3,h4,h5,h6".split(",");
    var res = [];
    for (item of el) {
      res.push(".markdown-body > " + item)
    }
    anchors.add(res.join(", "))
  </script>



  <script src="/js/local-search.js" ></script>
  <script>
    var path = "/local-search.xml";
    var inputArea = document.querySelector("#local-search-input");
    inputArea.onclick = function () {
      getSearchFile(path);
      this.onclick = null
    }
  </script>



  <script src="https://cdn.staticfile.org/fancybox/3.5.7/jquery.fancybox.min.js" ></script>
  <script>
    $("#post img:not(.no-zoom img, img[no-zoom])").each(
      function () {
        var element = document.createElement("a");
        $(element).attr("data-fancybox", "images");
        $(element).attr("href", $(this).attr("src"));
        $(this).wrap(element);
      }
    );
  </script>







</body>
</html>
